package vistaprincipal;
class Verificar {
    	public static Tabla CharValido (String cadena)
	   {
		int m=0, z=0,pa=0,pc=0, x=0;
		String lista="", traduc="";
		int tamcadena=cadena.length();
		
		for(int i=0;i<tamcadena;i++)
		   {
			m=0;
			x=cadena.codePointAt(i);    //cambia el caracter a codigo utf-8
			//System.out.printf("%c",(char)x); //imprime el cararacter

			switch (x)       //checando que sea un simbolo valido
			    {
			     case 8744://∨
			    	 traduc=traduc+"||";
			    	 m=1;
			     break;
			     case 8743://∧
					 traduc=traduc+"&&";
			    	 m=1;
			     break;
			     case 8594://→
			    	 traduc=traduc+"<=";
			    	 m=1;
			     break;
			     case 8660://⇔
			    	 traduc=traduc+"==";
			    	 m=1;
			     break;
			     case 55://7
			    	 traduc=traduc+"!";
			    	 m=1;
			     break;
			     case 40://(
			    	 traduc=traduc+(char)x;
			    	 pa++;
			    	 m=1;
			     break;
			     case 41://)
			    	 traduc=traduc+(char)x;
			    	 pc++;
			    	 m=1;
			     break;
			     default:
			    	 for (int j=65;j<=90;j++) //checando que sea una letra Mayus
						{
			    		 if (j==x)
						   {
							 m=1;
							 z=0;
							 traduc=traduc+(char)x;
							 for(int k=0;k<lista.length() ;k++)
							    {
								 if(x==lista.codePointAt(k))
								 z=1;
							    }
							 if(z!=1)
								lista=lista+(char)x;//guardes en lista
							 break;
						   }	  
						}
			    	 break;
			    }//cierra switch
			if(m!=1)
			  {
				System.out.println(cadena);
				System.out.println("ERROR Caracteres invalidos");
				return null;
			  }
			}//Cierra for
		if(pa!=pc)
		  {
                        System.out.println(cadena);
			System.out.println("ERROR Caracteres invalidos");
			return null;
		  }

		Tabla T=Tabla.Crear(cadena,lista,traduc);
		
		return T;
	    }//cierra método
}
